package com.em.sugarfight.entity;

import com.em.sugarfight.sugarEnums.RandomEventEnum;
import lombok.Data;

import java.util.List;

/**
 * 游戏全局参数类（对应文档3.5.1 总体参数说明）
 * 封装单局游戏的所有输入数据
 */
@Data
public class GameState {
    /** 本局比赛ID（用于处理多后端调用冲突） */
    private String current_match_id;
    /** 当前帧（从1开始计数） */
    private int current_tick;
    /** 地图数组（二维Cell数组，对应格子状态） */
    private Cell[][] map;
    /** 当前糖豆人状态 */
    private PlayerStateVo my_player;
    /** 其他糖豆人状态列表（共3个） */
    private List<PlayerStateVo> other_players;
    /** 当前未爆炸的炸弹列表 */
    private List<Bomb> bombs;
    /** 当前地图上的道具列表 */
    private List<MapItem> map_items;
    /** 当前全图事件（关联枚举） */
    private RandomEventEnum random_event_state;

    public int getMapWidth() {
        return this.map.length;
    }

    public int getMapHeight() {
        return this.map[0].length;
    }

    public Cell getCell(Position to) {
//        int width = (to.getY() - 25) / 50;
//        int height = (to.getX() - 25) / 50;

        return this.map[to.getY()][to.getX()];
    }
}
